In a shared 3-dimensional (“3D”) environment, there is a need for a virtual presence. For example, a decoded content stream of data such as audio or video may be acquired and then mapped onto multiple locations within a virtual reality computer program. These multiple locations can include 3D textures that may or may not be visible on the user's display screen simultaneously. For example, in a video-conference type of 3D environment, multiple different rooms may be utilized. In current systems, there can be a virtual presence of N participants in M number of rooms or groups. In these systems, however, a separate decoder/reader is utilized for each instance of a virtual participant. Accordingly, N×M decoders are utilized to decode/read all of the video for each separate instance of the virtual participants.
Use of this many decoders, however, is very taxing on the processing power utilized for generating the 3D environment. As a result, system performance slows and the virtual reality program may exhibit delays in displaying various aspects of the virtual environment. It is also inefficient to use a separate decoder for each different instance of the virtual participants. Specifically, the use of separate decoders to decode video for a participant of the virtual reality program is wasteful when the participant is not shown on the user's display screen, i.e., when that video/audio is not going to be presented to the user. That is, in the event that the user lacks a virtual presence in any of the rooms, processing bandwidth is wasted by decoding video/audio for instances of the virtual participants present in those rooms. Furthermore, in the event that video/audio for a single participant is to be presented in multiple rooms, it is wasteful to utilize two separate decoders to effectively decode the same content twice, i.e., one separate time for each instance.